package one.stand.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 订阅消息枚举
 * @author Administrator
 */
public enum WxSubscribeEnums {
    /**********************************************名片订阅枚举开始***************************************************/
    /**
     * 订单状态通知
     */
    // 分类 ： 620 - 企业管理
    /**
     * 1  订单号   number
     * 3  订单内容  thing
     * 10 商品信息  thing
     * 2 订单状态  phrase
     * 5 备注  thing
     *
     *
     订单号       {{number1.DATA}}
     订单内容     {{thing3.DATA}}
     商品信息     {{thing10.DATA}}
     订单状态     {{phrase2.DATA}}
     备注         {{thing5.DATA}}
     */
    ORDER_STATE_USER("orderStatusTemplate", 2205, "2205", "订单状态通知", "USER", "pages/orderLists/main?goType=1",
            EnumUtil.create(1, KeyWordType.number),
            EnumUtil.create(3, KeyWordType.thing),
            EnumUtil.create(10, KeyWordType.thing),
            EnumUtil.create(2, KeyWordType.phrase),
            EnumUtil.create(5, KeyWordType.thing)),

    /**
     * 新评论回复通知（咨询回复通知）
     */
    // 620 企业管理
    /**
     * 1 回复人 name
     * 2 回复时间 date
     * 4 备注 thing
     *
     回复人       {{name1.DATA}}
     回复时间     {{date2.DATA}}
     备注         {{thing4.DATA}}
     */
    COMMENT_REPLY_USER("commentReplyTemplate", 2578, "2578", "新评论回复通知", "USER", "pages/Dynamic/main?goType=1",
            EnumUtil.create(1, KeyWordType.name),
            EnumUtil.create(2, KeyWordType.date),
            EnumUtil.create(4, KeyWordType.thing)),

    /**
     * 未读消息（未读回信提醒）
     */
    /**
     留言人     {{name1.DATA}}
     消息内容     {{thing6.DATA}}UNREAD_MESSAGE_USER
     留言时间     {{date3.DATA}}
     留言标题     {{thing4.DATA}}
     */
    UNREAD_MESSAGE_USER("unreadMessageTemplate", 1076, "1076", "未读回信提醒", "USER", "pages/msg/main?goType=1",
            EnumUtil.create(1, KeyWordType.name),
            EnumUtil.create(6, KeyWordType.thing),
            EnumUtil.create(3, KeyWordType.date),
            EnumUtil.create(4, KeyWordType.thing)),



    /**
     * 名片访问提醒
     */
    /**
     *
     访问时间     {{date1.DATA}}
     温馨提醒     {{thing2.DATA}}
     访问人     {{name3.DATA}}
     访问详情     {{thing4.DATA}}
     */
    CUSTOMER_ACCESS("userAccess", 4433, "4433", "名片访问提醒", "USER", "pages/index/main",
            EnumUtil.create(1, KeyWordType.date),
            EnumUtil.create(2, KeyWordType.thing),
            EnumUtil.create(3, KeyWordType.name),
            EnumUtil.create(4, KeyWordType.thing)
    ),



    /**
     *
     * 咨询回复通知
     */
    /**
     回复者     {{name4.DATA}}
     回复时间     {{time2.DATA}}
     客服回复     {{thing3.DATA}}
     * Consultation reply
     * noticeId 历史 = 2136 ，修改为161， type 历史=CRM，修改为 USER
     */
    CONSULTATION_REPLY("userAccess", 2272, "2272", "咨询回复通知", "USER", "pages/msg/main?goType=1",
            EnumUtil.create(4, KeyWordType.name),
            EnumUtil.create(2, KeyWordType.time),
            EnumUtil.create(3, KeyWordType.thing)
    ),

    /**********************************************CRM开始***************************************************/
    /**
     * 订单状态通知
     */
    /**
     * 1  订单号   number
     * 3  订单内容  thing
     * 10 商品信息  thing
     * 2 订单状态  phrase
     * 5 备注  thing
     */
    ORDER_STATE_CRM("orderStatusTemplate", 2205, "2205", "订单状态通知", "CRM", "pages/orderLists/main?goType=1",
            EnumUtil.create(1, KeyWordType.number),
            EnumUtil.create(3, KeyWordType.thing),
            EnumUtil.create(10, KeyWordType.thing),
            EnumUtil.create(2, KeyWordType.phrase),
            EnumUtil.create(5, KeyWordType.thing)
    ),

    /**
     * 未读私信通知（咨询回复通知）
     */
    /**
     留言人     {{name1.DATA}}
     消息内容     {{thing6.DATA}}
     发送时间     {{time7.DATA}}
     留言标题    {{thing4.DATA}}
     */
    UNREAD_MESSAGE_CRM("unreadMessageTemplate", 1076, "1076", "未读私信通知", "CRM", "pages/msg/main",
            EnumUtil.create(1, KeyWordType.name),
            EnumUtil.create(6, KeyWordType.thing),
            EnumUtil.create(7, KeyWordType.time),
            EnumUtil.create(4, KeyWordType.thing)),

    /**
     * 新评论通知（新评论通知）
     */
    /**
     评论内容    {{thing3.DATA}}
     评论人     {{name4.DATA}}
     评论时间     {{date5.DATA}}
     */
    // 620 企业管理
    UNREAD_MESSAGE_COMMENT_CRM("unreadMessageComment", 2849, "2849", "新评论通知", "CRM","pages/msg/main?goType=1",
            EnumUtil.create(3, KeyWordType.thing),
            EnumUtil.create(4, KeyWordType.name),
            EnumUtil.create(5, KeyWordType.date)),



    /**
     * 需求提交成功提醒
     */
    /**
     回复人     {{name3.DATA}}
     回复时间     {{time1.DATA}}
     回复内容     {{thing2.DATA}}
     */
    FROM_SUBMIT_CRM("fromSubmit",777, "777", "反馈回复通知", "CRM", "pages/webSiteMsg/main?goType=1",
            EnumUtil.create(3, KeyWordType.name),
            EnumUtil.create(1, KeyWordType.time),
            EnumUtil.create(2, KeyWordType.thing)),
    /**
     * 名片访问提醒
     */
    /**
     *
     访问时间     {{date1.DATA}}
     温馨提醒     {{thing2.DATA}}
     访问人     {{name3.DATA}}
     访问详情     {{thing4.DATA}}

     */
    CUSTOMER_ACCESS_CRM("userAccess", 4433, "4433", "名片访问提醒", "CRM", "pages/index/main",
            EnumUtil.create(1, KeyWordType.date),
            EnumUtil.create(2, KeyWordType.thing),
            EnumUtil.create(3, KeyWordType.name),
            EnumUtil.create(4, KeyWordType.thing)
    ),;

    private static final Map<Integer, WxSubscribeEnums> SUBSCRIBE_ENUMS = new HashMap<>();

    static {
        for (WxSubscribeEnums subscribeEnums : WxSubscribeEnums.values()) {
            SUBSCRIBE_ENUMS.put(subscribeEnums.code, subscribeEnums);
        }
    }

    public static WxSubscribeEnums getWxSubscribeEnums(Integer code) {
        return SUBSCRIBE_ENUMS.get(code);
    }

    private String alias;
    private Integer code;

    private String name;

    private String type;

    private String page;

    private String noticeId;

    private KeyWordId[] data;

    private Integer[] keywordIds;

    public String getAlias() {
        return alias;
    }

    public Integer[] getKeywordIds() {
        return keywordIds;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public String getNoticeId() {
        return noticeId;
    }

    public void setNoticeId(String noticeId) {
        this.noticeId = noticeId;
    }

    public KeyWordId[] getData() {
        return data;
    }

    public void setData(KeyWordId[] data) {
        this.data = data;
    }

    WxSubscribeEnums(String alias, Integer code, String noticeId, String name, String type, String page, KeyWordId... data) {
        this.alias = alias;
        this.code = code;
        this.noticeId = noticeId;
        this.name = name;
        this.type = type;
        this.page = page;
        this.data = data;
        this.keywordIds = new Integer[data.length];
        for (int i = 0; i < data.length; i++) {
            this.keywordIds[i] = data[i].getCode();
        }
    }

    public static String getPage(Integer code) {
        WxSubscribeEnums[] wxNoticeEnums = values();
        for (WxSubscribeEnums wxNoticeEnums1 : wxNoticeEnums) {
            if (wxNoticeEnums1.getCode().equals(code)) {
                return wxNoticeEnums1.getPage();
            }
        }
        return null;
    }

    public static String getType(Integer code) {
        WxSubscribeEnums[] wxNoticeEnums = values();
        for (WxSubscribeEnums wxNoticeEnums1 : wxNoticeEnums) {
            if (wxNoticeEnums1.getCode().equals(code)) {
                return wxNoticeEnums1.getType();
            }
        }
        return null;
    }
}
